package com.example.warehouse.sys.service;


import com.example.warehouse.common.pojo.vo.PageData;
import com.example.warehouse.sys.pojo.entity.SysDept;
import com.example.warehouse.sys.pojo.entity.SysUser;
import com.example.warehouse.sys.pojo.param.AddNewDeptParam;
import com.example.warehouse.sys.pojo.param.DeptUpdateInfoParam;
import com.example.warehouse.sys.pojo.vo.DeptListItemVO;
import com.example.warehouse.sys.pojo.vo.DeptStandardVO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Transactional
public interface IDeptService {

    /**
     * 启用状态的显示文本
     */
    String ENABLE_TEXT[] = {"禁用", "启用"};


    /**
     * 添加部门数据
     *
     * @param addNewDeptParam 用户数据
     */
    void addNew(AddNewDeptParam addNewDeptParam);

    /**
     * 删除部门
     *
     * @param id 尝试删除的标签的ID
     */
    void delete(Long id);

    void updateInfoById(Long id,DeptUpdateInfoParam deptUpdateInfoParam);


    /**
     * 查询标签列表，将使用默认的每页记录数
     *
     * @param pageNum 页码
     * @return 查询标签列表
     */
    PageData<DeptListItemVO> list(Integer pageNum);

    /**
     * 查询标签列表
     *
     * @param pageNum  页码
     * @param pageSize 每页记录数
     * @return 标签列表
     */
    PageData<DeptListItemVO> list(Integer pageNum, Integer pageSize);

    /**
     * 查询标签列表，将使用默认的每页记录数
     *
     * @param pageNum 页码
     * @return 查询标签列表
     */
    PageData<DeptListItemVO> listByParentId(Long id,Integer pageNum);

    /**
     * 查询标签列表
     *
     * @param pageNum  页码
     * @param pageSize 每页记录数
     * @return 标签列表
     */
    PageData<DeptListItemVO> listByParentId(Long id,Integer pageNum, Integer pageSize);


    /**
     * 查询所有数据
     *
     */
    List<SysDept> selectAll();

    DeptStandardVO getStandardById(Long id);
}
